package cn.tannn.surenessdemo.user.entity;

import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;

/**
 * resource entity
 * @author tan
 * @date 2022-07-18 10:29:46
 */
@Entity
@Table(name = "auth_resource",indexes = {
        @Index(name = "method_url_inde",columnList = "method,uri",unique = true),
        @Index(name = "code_inde",columnList = "code",unique = true),
})
@org.hibernate.annotations.Table(appliesTo = "auth_resource", comment = "权限资源表")
@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
@DynamicUpdate
@DynamicInsert
public class AuthResource extends CommonBean<AuthResource> {

    /**
     * 资源编号
     */
    @Column(columnDefinition = " varchar(50) not null comment '资源编号' ")
    private String code;

    /**
     * 资源名称 e.g 获取token
     */
    @Column(columnDefinition = " varchar(50) not null comment '资源名称 e.g 获取token' ")
    private String name;

    /**
     * 资源地址 e.g /auth/token
     */
    @Column(columnDefinition = " varchar(255) not null comment '资源地址 e.g /auth/token' ")
    private String uri;

    /**
     * 资源类型（鉴权接口，静态文件，前端页面地址
     */
    @Column(columnDefinition = " varchar(20) comment '资源类型（鉴权接口，静态文件，前端页面地址' ")
    private String type;

    /**
     * 访问类型: GET POST PUT DELETE PATCH
     */
    @Column(columnDefinition = " varchar(10) not null comment '访问类型: GET POST PUT DELETE PATCH' ")
    private String method;

    /**
     * 访问状态： 1:拦截、0：不拦截（此资源不生效不做权限控制）
     */
    @Column(columnDefinition = " smallint  default 1  comment '访问状态： 1:拦截、0：不拦截（此资源不生效不做权限控制）' ")
    private Integer status;

    /**
     * 资源描述
     */
    @Column(columnDefinition = " varchar(255) comment '资源描述' ")
    private String description;

    /**
     * 资源标签（只允许有一个：eg.查询按钮）
     */
    @Column(columnDefinition = " varchar(50) comment '资源标签（只允许有一个：eg.查询按钮）' ")
    private String tag;



}
